const { DAILY_COMPANY_PUBLISH_LIMIT } = require('../config/constants');

/**
 * 计算给定时间所在自然日的开始与结束时间。
 * @param {Date} [referenceDate=new Date()] 用于计算的参考时间
 * @returns {{ startOfDay: Date, endOfDay: Date }} 自然日的起止时间
 */
function getDayRange(referenceDate = new Date()) {
  const startOfDay = new Date(referenceDate);
  startOfDay.setHours(0, 0, 0, 0);

  const endOfDay = new Date(referenceDate);
  endOfDay.setHours(23, 59, 59, 999);

  return { startOfDay, endOfDay };
}

/**
 * 判断当前发布次数是否已达到每日上线。
 * @param {number} currentCount 当前已发布次数
 * @returns {boolean} 是否触发限额
 */
function isLimitReached(currentCount) {
  return currentCount >= DAILY_COMPANY_PUBLISH_LIMIT;
}

module.exports = {
  DAILY_COMPANY_PUBLISH_LIMIT,
  getDayRange,
  isLimitReached
};
